/* Bad random number generator */

#include <stdio.h>

/* START: fig10_54.txt */
static unsigned long Seed = 1;

#define A 48271L
#define M 2147483647L

double Random(void) {
	Seed = ( A * Seed) % M;
	return (double) Seed / M;
}

void Initialize(unsigned long InitVal) {
	Seed = InitVal;
}
/* END */

main() {
	int i;

	for (i = 0; i < 20; i++)
		printf("%6f\n", Random());
	return 0;
}
